package com.sky.config;

import com.sky.properties.AliOssProperties;
import com.sky.utils.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


//这个类的意义是初始化一个带有参数的AliossUtil工具类来直接使用，本身AliOssUtil工具类是不能自己创建的

@Configuration //定义配置类,配置类下可以用@Bean
@Slf4j
public class OssConfiguration {

    @Bean //Bean跟Component区别在于bean用于方法，component用于类
    @ConditionalOnMissingBean //条件，当没有这个bean对象时才会创建
    //因为aliOssProperties加过Component所以自动传入
    public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties)
    {
        log.info("正在创建阿里云oss对象");

        //创建一个工具类并向其中传入属性配置
        return new AliOssUtil(aliOssProperties.getEndpoint(),
                aliOssProperties.getAccessKeyId(),
                aliOssProperties.getAccessKeySecret(),
                aliOssProperties.getBucketName());
    }
}
